package LINE.comm.interceptor;

import java.util.Iterator;
import java.util.Set;
import java.util.regex.Pattern;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.context.MessageSource;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.ModelAndViewDefiningException;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

//import com.with.comm.util.SessionUtil;

public class SecureInterceptor extends HandlerInterceptorAdapter{
	
	@Resource(name="messageSource")
	MessageSource messageSource ;
	
	private final Logger log = Logger.getLogger(this.getClass());
	    
    private final String BN_JSON_VIEW = "jsonView";
	
	private Set<String> permittedURL;

	public void setPermittedURL(Set<String> permittedURL) {
		this.permittedURL = permittedURL;
	}
	
	@Override
	 public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
	                  Object hadler) throws Exception {
		
		String requestURI = request.getRequestURI(); //���泥� URI
		boolean isPermittedURL = false; 
//		
//		//��몄�������� 濡�洹몄�몄��蹂대�� 媛���몄��
//		Object loginInfo = request.getSession().getAttribute(SessionUtil.SESSION_ATTR_NAME);
//		Object tmploginInfo = request.getSession().getAttribute("tmp_loginInfo");
//				
//		if(tmploginInfo != null) return true;
//		
//		if(loginInfo == null){
//			for(Iterator<String> it = this.permittedURL.iterator(); it.hasNext();){
//				String urlPattern = request.getContextPath() + (String) it.next();
//	
//				if(Pattern.matches(urlPattern, requestURI)){// ���洹������������� ��댁�⑺�댁�� ���泥� URI媛� �����⑸�� URL��� 留����吏� ���寃����.
//					isPermittedURL = true;
//				}
//			}
//			if(!isPermittedURL){
//								
//				ModelAndView mv = new ModelAndView(BN_JSON_VIEW);
//				mv.addObject("resultCd", "21");
//				
//				String strVal = "";
//				
//				try{
//					strVal = messageSource.getMessage("COMMON.title.SERVER_SESSION_END",null,SessionUtil.getUserLocale(request.getSession()));
//				}catch(Exception ex){
//					strVal = "��몄����� 留�猷���������듬�����.";
//				}
//
//				mv.addObject("resultMsg", strVal);
//				throw new ModelAndViewDefiningException(mv);
//				
//			}else{
//				return true;
//			}
//		}else{
//			return true;
//		}
		
		return true;
	}
}
